home *** CD-ROM | disk | FTP | other *** search
/ Tech Win 1995 November / CD [TECH_B].bin / tech_b / delphi / trial / disk2 / inttab.pak / TABS.INT < prev    next >
Encoding:
Text File  |  1995-08-08  |  3.8 KB  |  114 lines

  1. {*******************************************************}
  2. {                                                       }
  3. {       Delphi Visual Component Library                 }
  4. {                                                       }
  5. {       Copyright (c) 1995 Borland International        }
  6. {                                                       }
  7. {*******************************************************}
  8.  
  9. { Implements tab control }
  10.  
  11. unit Tabs;
  12.  
  13. interface
  14.  
  15. uses WinTypes, WinProcs, Classes, Graphics, Forms, Controls,
  16.   Messages;
  17.  
  18. type
  19.   TScrollBtn = (sbLeft, sbRight);
  20.  
  21.   TScroller = class(TCustomControl)
  22.   public
  23.     constructor Create(AOwner: TComponent); override;
  24.     destructor Destroy; override;
  25.     procedure Paint; override;
  26.   published
  27.     property OnClick: TNotifyEvent;
  28.     property Min: Longint default 0;
  29.     property Max: Longint default 0;
  30.     property Position: Longint default 0;
  31.     property Change: Integer default 1;
  32.   end;
  33.  
  34.   TTabSet = class;
  35.  
  36.   TTabList = class(TStringList)
  37.   public
  38.     procedure Insert(Index: Integer; const S: string); override;
  39.     procedure Delete(Index: Integer); override;
  40.     function Add(const S: string): Integer; override;
  41.     procedure Put(Index: Integer; const S: string); override;
  42.     procedure Clear; override;
  43.     procedure AddStrings(Strings: TStrings); override;
  44.   end;
  45.  
  46.   { eash TEdgeType is made up of one or two of these parts }
  47.   TEdgePart = (epSelectedLeft, epUnselectedLeft, epSelectedRight,
  48.     epUnselectedRight);
  49.  
  50.   { represents the intersection between two tabs, or the edge of a tab }
  51.   TEdgeType = (etNone, etFirstIsSel, etFirstNotSel, etLastIsSel, etLastNotSel,
  52.     etNotSelToSel, etSelToNotSel, etNotSelToNotSel);
  53.  
  54.   TTabStyle = (tsStandard, tsOwnerDraw);
  55.  
  56.   TMeasureTabEvent = procedure(Sender: TObject; Index: Integer;
  57.     var TabWidth: Integer) of object;
  58.   TDrawTabEvent = procedure(Sender: TObject; TabCanvas: TCanvas; R: TRect;
  59.     Index: Integer; Selected: Boolean) of object;
  60.   TTabChangeEvent = procedure(Sender: TObject; NewTab: Integer;
  61.     var AllowChange: Boolean) of object;
  62.  
  63.   TTabSet = class(TCustomControl)
  64.   protected
  65.     procedure Paint; override;
  66.     procedure DrawTab(TabCanvas: TCanvas; R: TRect; Index: Integer;
  67.       Selected: Boolean); virtual;
  68.     function CanChange(NewIndex: Integer): Boolean;
  69.     procedure MeasureTab(Index: Integer; var TabWidth: Integer); virtual;
  70.     procedure DefineProperties(Filer: TFiler); override;
  71.   public
  72.     constructor Create(AOwner: TComponent); override;
  73.     destructor Destroy; override;
  74.     function ItemAtPos(Pos: TPoint): Integer;
  75.     function ItemRect(Item: Integer): TRect;
  76.     procedure SelectNext(Direction: Boolean);
  77.     property Canvas;
  78.     property FirstIndex: Integer default 0;
  79.   published
  80.     property Align;
  81.     property AutoScroll: Boolean default True;
  82.     property BackgroundColor: TColor default clBtnFace;
  83.     property DitherBackground: Boolean default True;
  84.     property DragMode;
  85.     property Enabled;
  86.     property EndMargin: Integer default 5;
  87.     property Font;
  88.     property ParentShowHint;
  89.     property ShowHint;
  90.     property StartMargin: Integer default 5;
  91.     property SelectedColor: TColor default clBtnFace;
  92.     property Style: TTabStyle default tsStandard;
  93.     property TabHeight: Integer default 20;
  94.     property Tabs: TStrings;
  95.     property TabIndex: Integer default -1;
  96.     property UnselectedColor: TColor default clWindow;
  97.     property Visible;
  98.     property VisibleTabs: Integer;
  99.     property OnClick;
  100.     property OnChange: TTabChangeEvent;
  101.     property OnDragDrop;
  102.     property OnDragOver;
  103.     property OnDrawTab: TDrawTabEvent;
  104.     property OnEndDrag;
  105.     property OnEnter;
  106.     property OnExit;
  107.     property OnMouseDown;
  108.     property OnMouseMove;
  109.     property OnMouseUp;
  110.     property OnMeasureTab: TMeasureTabEvent;
  111.   end;
  112.  
  113. implementation
  114.